5 年前,當我剛接下 Tech Lead 的重擔時,迎接我的不是可以大展身手的舞台,而是一個深不見底的開發泥沼:
沒有/混亂的版控:程式碼的傳遞,靠的是通訊軟體裡飛來飛去的 zip 壓縮檔,和 Shared Folder 裡檔名加底線日期的備份檔。有些團隊有導入版控,但branch分法卻是亂七八糟。
沒有流程:沒有 Ticket 追蹤機制,需求和 Bug 永遠散落在 Email 和口頭交辦的黑洞裡。
手動地獄:更別提什麼 Git Flow 或是自動化測試了。每次上線部署,全團隊就像在打一場人工肉搏戰,耗時、心力交瘁,且隨時可能踩到未知的地雷。
如果你現在也面臨相同的處境,發現時間總是被瑣碎的部署流程佔據,導致無法專注於核心開發,那這系列的文章絕對可以幫到你。
說實話,這套系統與規範,最初並非公司交辦的任務,我的動機非常單純:
純粹為了解決效率痛點:為了不想再把時間耗費在手動打包、傳遞檔案與重複除錯上,我決定自己動手自己建一個。
從痛點到基礎建設:我利用額外的時間,從 0 到 1 摸索並架設起這套 CI/CD 基礎設施,只為了一個單純的目的:把時間留給真正的開發工作。
帶動團隊生態轉變:這份原本只為了提升個人效率的決定,在系統上線後,不僅大幅節省了我的時間,也順勢帶領整個團隊跨出了手動部署的泥沼。
現在這個時代,雲端服務與 AI 工具滿天飛,用 SaaS 快速搞定自動化似乎理所當然。但現實環境中,許多企業受限於資安規範、歷史包袱或預算考量,「地端落地」與「自主管控」依然是必要的需求。
這系列文章的目的,不只是教你怎麼用工具,而是帶領你從底層架構開始,建構一套屬於你們團隊、且能完全掌控的企業級 CI/CD 體系。這套系統能大幅提升交付速度,同時將工程師從無意義的雜事中解放出來,回歸開發本質。
要推動這項變革,我們必須先看清過去手動模式帶來的致命傷:
程式碼品質的慢性病 過去太依賴人工 Code Review,品質好壞全看前輩的經驗和當下的時間壓力。我們需要建立「自動化門禁(Quality Gates)」,讓機器攔截低級的語法錯誤與技術債,讓工程師把腦力留在更高層次的架構設計上。
消滅「在我的電腦上明明就可以跑」 手動設定環境的差異,是部署失敗的最大元兇。我們必須落實「環境配置代碼化」與「安全性左移」,確保每一項變更都是透明、可追蹤且一致的。
打破開發與維運的「跨部門仇恨」 DevOps 不是一句口號,核心在於打破穀倉效應。透過標準化的 Pipeline,我們能讓團隊在同一個標準下協作,把產品品質從單一角色的責任,變成整個交付流程的共同目標。
在接下來的 30 天裡,我們將分為七大階段,從基礎建設出發,一步步把這套企業自動化系統蓋起來:
Day 01-02: CI/CD 轉型戰略、架構與文化定位。
Day 03-04: Issue Ticket 管理 (Notion/HLCT) 與 IDE 本地 Guardrails。
Day 05: 大型檔案管理 (LFS) 與 Git 倉庫優化。
Day 06-07: Git workflow 規範 (Hotfix 回合) 與 Squash Merge 策略。
Day 08-10: Pull Request 審查規範、語義化標題與專業註解標準。
Day 11: SonarQube 基礎環境與 PostgreSQL 17 優化配置。
Day 12: Docker 部署 SonarQube Server 與 Webhook 異步聯動。
Day 13: Jenkins 核心系統安裝:Docker Compose 與 IIS Reverse Proxy。
Day 14: 算力解耦:Jenkins 分散式 Agent 配置與 SSH 節點納管。
Day 15: 全域工具配置 (Global Tool Configuration) 的抽象層設計。
Day 16: Jenkins 插件管理、權限管制與 RBAC 安全性配置。
Day 17: SonarQube 多 Branch 分析套件與 PR 裝飾實踐。
Day 18: Shared Library 構建高度複用的管線架構。
Day 19: 整合 HashiCorp Vault 實現動態密鑰與密碼管理。
Day 20: 實戰:完整的 SonarQube 品質掃描 Workflow。
Day 21-22: 環境staging策略、災難復原與程式驅動pipeline。
Day 23-25: 自動化管線實作 (sonarqube.jenkinsfile / MyDeploy.jenkinsfile)。
Day 26: 跨平台部署:sshpass、scp 與 Windows 檔案傳輸。
Day 27-28: PowerShell 部署腳本設計與利用工作排程器解決 Session 隔離問題。
Day 29: 監控系統建置:Prometheus 與 Grafana 可觀測性實務。
Day 30: 永續運維:自動化備份 SOP 與系統結語。
CI/CD 的轉型從來都不只是換幾套工具那麼簡單,建立一套穩定且可持續的標準化流程,是帶領團隊脫離泥沼的唯一解法。
明天,我們就先來聊聊 CI/CD 在 DevOps 體系中到底扮演什麼角色,為我們接下來的實戰打下基礎!
關於這系列文章:
這裡記載的技術架構與團隊故事,來自於我 5 年前帶領過往團隊時的實務經歷。將這段早期的紀錄整理出來,純屬個人的技術心得開源,與我目前的現職工作及所屬公司無任何關聯,希望能幫助到正在推動自動化的朋友。